package com.mrd.gtimpframe.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * T_GEN_PLATFORM_FEE
 *
 * @author dusy  2018-01-05
 * 平台服务费
 */
public class PlatformFee implements Serializable {
    /**
     * null
     */
    private String id;

    /**
     * 费用名
     */
    private String feeName;

    /**
     * 费用值
     */
    private BigDecimal feeAmount;

    /**
     * 费用类型
     * 关联数据字典，字典组代码GEN_FEE_TYPE
     * AGENT_FEE 代录单费
     */
    private String feeType;

    /**
     * 生效时间起
     */
    private Date eftTimeBegin;

    /**
     * 生效时间至
     */
    private Date eftTimeEnd;

    /**
     * 状态 0 草稿；1 待生效；2 生效；3 结束
     */
    private String status;

    /**
     * 删除标识 0 未删除，1 删除
     */
    private String delFlag;

    /**
     * 创建人
     */
    private String creator;

    /**
     * 创建时间
     */
    private Date ctime;

    /**
     * 最后修改人
     */
    private String midifier;

    /**
     * 最后修改时间
     */
    private Date mtime;

    /**
     * 协议适用客户id,特殊id（代表所有客户）：all
     */
    private String customerId;

    private String customerName;

    /**
     * 协议适用报关行id
     */
    private String supplierId;

    private String supplierName;

    /**
     * 协议适用公司类型,字典组EFT_CUST_COM_TYPE
     */
    private String companyType;

    private String companyTypeChn;

    /**
     * 是否委托自己,字典组EFT_CUST_AGENT_SELF YES 是；NO 不是;ALL 全部
     */
    private String agentSelf;

    private String agentSelfChn;

    /**
     * 计费规则，字典组protocol_count_fee_rule
     */
    private String chargeMode;

    private String chargeModeChn;

    public String ctimeStart;//查询时间起
    public String ctimeEnd;//查询时间止

    public String getCtimeStart() {
        return ctimeStart;
    }

    public void setCtimeStart(String ctimeStart) {
        this.ctimeStart = ctimeStart;
    }

    public String getCtimeEnd() {
        return ctimeEnd;
    }

    public void setCtimeEnd(String ctimeEnd) {
        this.ctimeEnd = ctimeEnd;
    }

    /**
     * T_GEN_PLATFORM_FEE
     */
    private static final long serialVersionUID = 1L;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id == null ? null : id.trim();
    }

    public String getFeeName() {
        return feeName;
    }

    public void setFeeName(String feeName) {
        this.feeName = feeName == null ? null : feeName.trim();
    }

    public BigDecimal getFeeAmount() {
        return feeAmount;
    }

    public void setFeeAmount(BigDecimal feeAmount) {
        this.feeAmount = feeAmount;
    }

    public String getFeeType() {
        return feeType;
    }

    public void setFeeType(String feeType) {
        this.feeType = feeType == null ? null : feeType.trim();
    }

    public Date getEftTimeBegin() {
        return eftTimeBegin;
    }

    public void setEftTimeBegin(Date eftTimeBegin) {
        this.eftTimeBegin = eftTimeBegin;
    }

    public Date getEftTimeEnd() {
        return eftTimeEnd;
    }

    public void setEftTimeEnd(Date eftTimeEnd) {
        this.eftTimeEnd = eftTimeEnd;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status == null ? null : status.trim();
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag == null ? null : delFlag.trim();
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator == null ? null : creator.trim();
    }

    public Date getCtime() {
        return ctime;
    }

    public void setCtime(Date ctime) {
        this.ctime = ctime;
    }

    public String getMidifier() {
        return midifier;
    }

    public void setMidifier(String midifier) {
        this.midifier = midifier == null ? null : midifier.trim();
    }

    public Date getMtime() {
        return mtime;
    }

    public void setMtime(Date mtime) {
        this.mtime = mtime;
    }

    public String getCustomerId() {
        return customerId;
    }

    public void setCustomerId(String customerId) {
        this.customerId = customerId == null ? null : customerId.trim();
    }

    public String getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(String supplierId) {
        this.supplierId = supplierId == null ? null : supplierId.trim();
    }

    public String getCompanyType() {
        return companyType;
    }

    public void setCompanyType(String companyType) {
        this.companyType = companyType == null ? null : companyType.trim();
    }

    public String getAgentSelf() {
        return agentSelf;
    }

    public void setAgentSelf(String agentSelf) {
        this.agentSelf = agentSelf == null ? null : agentSelf.trim();
    }

    public String getChargeMode() {
        return chargeMode;
    }

    public void setChargeMode(String chargeMode) {
        this.chargeMode = chargeMode == null ? null : chargeMode.trim();
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getCompanyTypeChn() {
        return companyTypeChn;
    }

    public void setCompanyTypeChn(String companyTypeChn) {
        this.companyTypeChn = companyTypeChn;
    }

    public String getAgentSelfChn() {
        return agentSelfChn;
    }

    public void setAgentSelfChn(String agentSelfChn) {
        this.agentSelfChn = agentSelfChn;
    }

    public String getChargeModeChn() {
        return chargeModeChn;
    }

    public void setChargeModeChn(String chargeModeChn) {
        this.chargeModeChn = chargeModeChn;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        PlatformFee other = (PlatformFee) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) && (this.getFeeName() == null ? other.getFeeName() == null : this.getFeeName().equals(other.getFeeName())) && (this.getFeeAmount() == null ? other.getFeeAmount() == null : this.getFeeAmount().equals(other.getFeeAmount())) && (this.getFeeType() == null ? other.getFeeType() == null : this.getFeeType().equals(other.getFeeType())) && (this.getEftTimeBegin() == null ? other.getEftTimeBegin() == null : this.getEftTimeBegin().equals(other.getEftTimeBegin())) && (this.getEftTimeEnd() == null ? other.getEftTimeEnd() == null : this.getEftTimeEnd().equals(other.getEftTimeEnd())) && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus())) && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag())) && (this.getCreator() == null ? other.getCreator() == null : this.getCreator().equals(other.getCreator())) && (this.getCtime() == null ? other.getCtime() == null : this.getCtime().equals(other.getCtime())) && (this.getMidifier() == null ? other.getMidifier() == null : this.getMidifier().equals(other.getMidifier())) && (this.getMtime() == null ? other.getMtime() == null : this.getMtime().equals(other.getMtime())) && (this.getCustomerId() == null ? other.getCustomerId() == null : this.getCustomerId().equals(other.getCustomerId())) && (this.getSupplierId() == null ? other.getSupplierId() == null : this.getSupplierId().equals(other.getSupplierId())) && (this.getCompanyType() == null ? other.getCompanyType() == null : this.getCompanyType().equals(other.getCompanyType())) && (this.getAgentSelf() == null ? other.getAgentSelf() == null : this.getAgentSelf().equals(other.getAgentSelf())) && (this.getChargeMode() == null ? other.getChargeMode() == null : this.getChargeMode().equals(other.getChargeMode()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getFeeName() == null) ? 0 : getFeeName().hashCode());
        result = prime * result + ((getFeeAmount() == null) ? 0 : getFeeAmount().hashCode());
        result = prime * result + ((getFeeType() == null) ? 0 : getFeeType().hashCode());
        result = prime * result + ((getEftTimeBegin() == null) ? 0 : getEftTimeBegin().hashCode());
        result = prime * result + ((getEftTimeEnd() == null) ? 0 : getEftTimeEnd().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
        result = prime * result + ((getCreator() == null) ? 0 : getCreator().hashCode());
        result = prime * result + ((getCtime() == null) ? 0 : getCtime().hashCode());
        result = prime * result + ((getMidifier() == null) ? 0 : getMidifier().hashCode());
        result = prime * result + ((getMtime() == null) ? 0 : getMtime().hashCode());
        result = prime * result + ((getCustomerId() == null) ? 0 : getCustomerId().hashCode());
        result = prime * result + ((getSupplierId() == null) ? 0 : getSupplierId().hashCode());
        result = prime * result + ((getCompanyType() == null) ? 0 : getCompanyType().hashCode());
        result = prime * result + ((getAgentSelf() == null) ? 0 : getAgentSelf().hashCode());
        result = prime * result + ((getChargeMode() == null) ? 0 : getChargeMode().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", feeName=").append(feeName);
        sb.append(", feeAmount=").append(feeAmount);
        sb.append(", feeType=").append(feeType);
        sb.append(", eftTimeBegin=").append(eftTimeBegin);
        sb.append(", eftTimeEnd=").append(eftTimeEnd);
        sb.append(", status=").append(status);
        sb.append(", delFlag=").append(delFlag);
        sb.append(", creator=").append(creator);
        sb.append(", ctime=").append(ctime);
        sb.append(", midifier=").append(midifier);
        sb.append(", mtime=").append(mtime);
        sb.append(", customerId=").append(customerId);
        sb.append(", supplierId=").append(supplierId);
        sb.append(", companyType=").append(companyType);
        sb.append(", agentSelf=").append(agentSelf);
        sb.append(", chargeMode=").append(chargeMode);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}